package dao.book;

import dao.BaseDao;
import dao.DaoException;
import model.Book;

import java.util.ArrayList;

public interface BookDao extends BaseDao {
    // 添加图书
    boolean addBook(Book book) throws DaoException;

    // 为layui提供数据的接口方式 start
    // 分页的形式查询书籍
    ArrayList<Book> findBooksByPageAll(int pageNum, int pageSize) throws DaoException;
    // 查询所有书籍的数目
    int findBookNumAll() throws DaoException;
    // 为layui提供数据的接口方式 end

    // 为layui提供数据的接口方式 start
    // 分页的形式查询书籍
    ArrayList<Book> searchBooksByPageAll(String pattern, int pageNum, int pageSize) throws DaoException;
    // 查询所有书籍的数目
    int searchBookNumAll(String pattern) throws DaoException;
    // 为layui提供数据的接口方式 end

    // 为layui提供数据的接口方式 start
    // 分页的形式查询用户借阅的书籍
    ArrayList<Book> findBooksByPageBorrow(int pageNum, int pageSize) throws DaoException;
    int findBookNumBorrow() throws DaoException;
    // 为layui提供数据的接口方式 end

    // 为layui提供数据的接口方式 start
    // 分页的形式搜索查询用户借阅的书籍
    ArrayList<Book> searchBooksByPageBorrow(String pattern, int pageNum, int pageSize) throws DaoException;
    int searchBookNumBorrow(String pattern) throws DaoException;
    // 为layui提供数据的接口方式 end

    // 根据书的id删除对应书籍
    void deleteBooksById(int id) throws DaoException;
    // 更新书的状态，已借阅 或者 未借阅1
    void updateBorrowBook(int id, String state) throws DaoException;
}
